#ifndef GYRO_FLOW_PORT_DEFAULT_H
#define GYRO_FLOW_PORT_DEFAULT_H

#include "../imu_track/complementary_filter.h"
#include <string>

typedef struct {
    double smoothness;
    double smoothness_pitch;
    double smoothness_yaw;
    double smoothness_roll;
    bool per_axis;
    bool second_pass;
    bool trim_range_only;
    double max_smoothness;
    double alpha_0_1s;
} DefaultAlgo;

typedef struct {
    double roll;  // 角度（弧度）绕 X 轴旋转
    double pitch; // 角度（弧度）绕 Y 轴旋转
    double yaw;   // 角度（弧度）绕 Z 轴旋转
} EulerAngle;


// 默认初始化函数
DefaultAlgo initDefaultAlgo();

std::string alg_smooth(Queue* q);

float get_alpha(float time_constant, float sample_rate);

void smoothVelocity(Vector3* velocity, size_t length, double alpha_0_1s);


#endif //GYRO_FLOW_PORT_DEFAULT_H
